package com.example.demo.common;

import lombok.Data;

@Data
public class AjaxResult<T> {

    private Integer code;

    private String msg;

    private T data;

    public AjaxResult(Integer code, String msg, T data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    /**
     * 回调成功的响应示例
     * @return
     */
    public static AjaxResult success(){
        return new AjaxResult(200,"操作成功",null);
    }

    /**
     * 回调成功的响应示例
     * @param data 对象数据
     * @return
     */
    public static AjaxResult success(Object data){
        return new AjaxResult(200,"操作成功",data);
    }

    /**
     * 回调成功的响应示例
     * @param msg 操作消息
     * @param data 对象数据
     * @return
     */
    public static AjaxResult success(String msg, Object data){
        return new AjaxResult(200,msg,data);
    }

    /**
     * 回调成功的响应示例
     * @param code 状态码
     * @param msg 操作消息
     * @param data 对象数据
     * @return
     */
    public static AjaxResult success(Integer code, String msg, Object data){
        return new AjaxResult(code,msg,data);
    }

    /**
     * 回调失败的响应示例
     * @return
     */
    public static AjaxResult error(){
        return new AjaxResult(500,"操作失败",null);
    }

    /**
     * 回调失败的响应示例
     * @param data 对象数据
     * @return
     */
    public static AjaxResult error(Object data){
        return new AjaxResult(500,"操作失败",data);
    }

    /**
     * 回调失败的响应示例
     * @param code 状态码
     * @param msg 操作消息
     * @return
     */
    public static AjaxResult error(Integer code, String msg){
        return new AjaxResult(code,msg,null);
    }

    /**
     * 回调失败的响应示例
     * @param code 状态码
     * @param msg 操作消息
     * @param data 对象数据
     * @return
     */
    public static AjaxResult error(Integer code, String msg, Object data){
        return new AjaxResult(code,msg,data);
    }

}
